<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:zj="http://www.zju.edu.cn" exclude-result-prefixes="zj">
  <xsl:import href="../Tk2Base/PublicItems.xslt"/>
  <xsl:import href="../Tk2Base/GlobalVariable.xslt"/>
  <xsl:param name="Doc"/>
  <xsl:variable name="zj:Toolkit" select="/Toolkit"/>
  <xsl:variable name="zj:IsNo" select="boolean(/Toolkit/QueryString/No)"/>
  <xsl:variable name="zj:XmlData" select="$Doc"/>
  <xsl:variable name="zj:Tables" select="$Doc/Toolkit/zj:Table"/>
  <xsl:template name="zj:Content">
    <xsl:variable name="FieldNodes" select="$Doc/Toolkit/zj:Table/List/zj:Field"/>
    <xsl:for-each select="$FieldNodes">
      <col class="x124"/>
    </xsl:for-each>
    <tr height="42" style="height:31.5pt">
      <td height="42" class="xl27" style="height:31.5pt">
        <xsl:attribute name="colspan"><xsl:choose><xsl:when test="$zj:IsNo"><xsl:value-of select="count($FieldNodes) + 1"/></xsl:when><xsl:otherwise><xsl:value-of select="count($FieldNodes)"/></xsl:otherwise></xsl:choose></xsl:attribute>
        <xsl:call-template name="zj:ExcelTitle"/>
      </td>
    </tr>
    <tr height="19" style="height:14.25pt">
      <td height="19" style="height:14.25pt;mso-ignore:colspan"/>
      <td/>
      <td/>
      <td/>
      <td/>
    </tr>
    <tr height="19" style="height:14.25pt">
      <xsl:if test="$zj:IsNo">
        <td height="19" class="xl25" style="height:14.25pt">序号</td>
      </xsl:if>
      <xsl:apply-templates select="$FieldNodes" mode="zj:ListHead"/>
    </tr>
    <xsl:variable name="Data" select="$zj:Toolkit/*[local-name()=$zj:Tables/@TableName]"/>
    <xsl:for-each select="$Data">
      <tr height="19" style="height:14.25pt">
        <xsl:if test="$zj:IsNo">
          <td height="19" class="xl28" style="height:14.25pt;border-top:none">
            <xsl:value-of select="position()"/>
          </td>
        </xsl:if>
        <xsl:apply-templates select="$FieldNodes" mode="zj:Item">
          <xsl:with-param name="DataRecord" select="."/>
        </xsl:apply-templates>
      </tr>
    </xsl:for-each>
  </xsl:template>
  <xsl:template name="zj:ExcelTitle">
    <xsl:value-of select="$zj:Title"/>
  </xsl:template>
  <xsl:template match="zj:Field" mode="zj:ListHead">
    <xsl:choose>
      <xsl:when test="position()=1 and not($zj:IsNo)">
        <td height="19" class="xl25" style="height:14.25pt">
          <xsl:value-of select="zj:DisplayName"/>
        </td>
      </xsl:when>
      <xsl:otherwise>
        <td class="xl26">
          <xsl:value-of select="zj:DisplayName"/>
        </td>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
  <xsl:template match="zj:Field" mode="zj:Item">
    <xsl:param name="DataRecord"/>
    <xsl:variable name="Value" select="$DataRecord/*[local-name()=current()/zj:FieldName]"/>
    <xsl:variable name="DisplayValue">
      <xsl:call-template name="zj:DisplayValue">
        <xsl:with-param name="Field" select="."/>
        <xsl:with-param name="Value" select="$Value"/>
      </xsl:call-template>
    </xsl:variable>
    <xsl:choose>
      <xsl:when test="position()=1 and not($zj:IsNo)">
        <td height="19" class="xl28" style="height:14.25pt;border-top:none">
          <xsl:value-of select="$DisplayValue"/>
        </td>
      </xsl:when>
      <xsl:otherwise>
        <xsl:choose>
          <xsl:when test="@DataType='Date' or @DataType='DateTime'">
            <td class="xl28" style="border-top:none;border-left:none">
              <xsl:value-of select="$DisplayValue"/>
            </td>
          </xsl:when>
          <xsl:otherwise>
            <td class="xl28" style="border-top:none;border-left:none">
              <xsl:value-of select="$DisplayValue"/>
            </td>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
</xsl:stylesheet>
